﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace AncientEmpires_025_132
{
    public class Nation : InVisibleGameEntity
    {
        // Sự kiện khi chiếm được 1 building mới.
        public event System.EventHandler OccupiedBuilding;
        protected const int MONEY = 25;

        // Loại của đội là người chơi hoặc là máy tính: Player or Computer.
        protected TypeNation _myTypeTeam;
        public TypeNation MyTypeTeam
        {
            get { return _myTypeTeam; }
            set { _myTypeTeam = value; }
        }

        //Tên của đội.
        protected NationName _nationName;
        public NationName NationName
        {
            get { return _nationName; }
            set { _nationName = value; }
        }

        // Tên của phe trong tất cả các team của trận chiến.
        protected TeamName _teamName;
        public TeamName TeamName
        {
            get { return _teamName; }
            set { _teamName = value; }
        }

        // Số tiền hiện tại của team
        protected int _money;
        public int Money
        {
            get { return _money; }
            set { _money = value; }
        }

        // Số lính (bao gồm tướng) tối đa trong 1 đội
        protected int _unitMaxCharacter;
        public int UnitMaxCharacter
        {
            get { return _unitMaxCharacter; }
            set { _unitMaxCharacter = value; }
        }

        // Danh sách chứa đựng các nhà, thành trì mà team đã chiếm được.
        protected List<Building> _buildingOwner;
        public List<Building> BuildingOwner
        {
            get { return _buildingOwner; }
            set { _buildingOwner = value; }
        }

        // Danh sách chứa các nhân vật hiện tại trên bản đồ của team.
        protected List<Character> _characterOwner;
        public List<Character> CharacterOwner
        {
            get { return _characterOwner; }
            set { _characterOwner = value; }
        }

        public void IncreaseMoney()
        {
            this.Money += MONEY * this.BuildingOwner.Count;
        }
        public void SetFirstPositionSkirmishCharacter(int indexCharacter)
        {
            
            for (int i = 0; i < BuildingOwner.Count; i++)
            {
                if (BuildingOwner[i].MyNationName == CharacterOwner[indexCharacter].MyNationName && BuildingOwner[i].MyBuildingName == BuildingName.Castle)
                {
                    for (int j = 0; j < CharacterOwner[indexCharacter].ListSprites.Count; j++)
                    {
                        CharacterOwner[indexCharacter].ListSprites[j].TopLeft = BuildingOwner[i].ListSprites[0].TopLeft;
                    }
                }
            }
        }
    }
}
